package ar.uba.fi.algo3.titiritero.vista;

import java.util.ArrayList;
import java.util.List;

import ar.uba.fi.algo3.titiritero.Dibujable;
import ar.uba.fi.algo3.titiritero.SuperficieDeDibujo;

public class CentralVista
{
	protected List<Dibujable> dibujables;
	protected SuperficieDeDibujo superficieDeDibujo;
	protected boolean superficieVisible;
	
	public CentralVista()
	{
		this.dibujables = new ArrayList<Dibujable>();
	}
	
	public void dibujar() {
		if (superficieVisible) {
			this.superficieDeDibujo.limpiar();
			for (Dibujable dibujable : dibujables) {
				dibujable.dibujar(this.superficieDeDibujo);
			}		
			this.superficieDeDibujo.actualizar();
		}
	}

	public void agregarDibujable(Dibujable unDibujable){
		dibujables.add(unDibujable);
	}
	
	public void removerDibujable(Dibujable unDibujable){
		dibujables.remove(unDibujable);
	}
	
	public SuperficieDeDibujo getSuperficieDeDibujo() {
		return superficieDeDibujo;
	}

	public void setSuperficieDeDibujo(SuperficieDeDibujo superficieDeDibujo) {
		this.superficieDeDibujo = superficieDeDibujo;
	}

	public void setVisible(boolean visibilidad) {
		if (superficieDeDibujo != null) {
			superficieVisible = visibilidad;
		}
		this.superficieDeDibujo.setVisible(visibilidad);
	}
}
